package com.iwhalecloud.bss.kite.cucc.service.attr.handler;

import com.iwhalecloud.bss.kite.common.constant.KeyConsts;
import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
import com.iwhalecloud.bss.kite.cucc.service.attr.LocalAttrHelper;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttr;
import com.iwhalecloud.bss.kite.manager.inst.KiteInst;
import com.iwhalecloud.bss.kite.service.attr.AttrData;
import com.iwhalecloud.bss.kite.service.attr.handler.AbstractAttrHandler;
import org.springframework.stereotype.Service;

import java.util.Objects;
/**
 *
 * 数睿广告
 * 全国
 * （1）“广告位”枚举值以cpm结尾，联动出“销售单价（元/千次）”属性。
 * （2）“广告位”枚举值以cpc结尾，联动出“销售单价（元/次）”属性。
 *
 *
 */
@Service
public class AdvertisementTypeAttrHandler extends AbstractAttrHandler<KiteInst, AttrData> {

    @Override
    public void set(KiteAttr attr, KiteInst inst, String value, AttrData data) {
        super.set(attr, inst, value, data);
        String fieldName = attr.getFieldName();
        String str = attr.getValueDesc();
        String lastStr = "";
        if(KiteStringUtils.isNotBlank(str) && str.length()>3 ) {
             lastStr  = str.substring(str.length()-3);
         }

        KiteAttr attr1 = inst.getAttr("200002630");//获取元/千次
        KiteAttr attr2 = inst.getAttr("210008174");//获取元/次
        switch (fieldName) {
            case "200001149":
                // 类型为广告位


                if("CPM".equals(lastStr)) {


                	//显示元/千次，隐藏元/次 cpm
                    if (Objects.nonNull(attr1)) {
                        LocalAttrHelper.hiddenOrDisplayProdAttr(data.getSceneInstId(), inst, attr1, KeyConsts.PROD_ATTR_SHOW_TYPE_D, attr1.getValue());

                    }

                    if (Objects.nonNull(attr2)) {
                        LocalAttrHelper.hiddenOrDisplayProdAttr(data.getSceneInstId(), inst, attr2, KeyConsts.PROD_ATTR_SHOW_TYPE_E, "");
                    }
                } else if("CPC".equals(lastStr)){
                //隐藏元/千次，显示元/次
               if (Objects.nonNull(attr2)) {
                        LocalAttrHelper.hiddenOrDisplayProdAttr(data.getSceneInstId(), inst, attr2, KeyConsts.PROD_ATTR_SHOW_TYPE_D, attr2.getValue());

                    }
                    if (Objects.nonNull(attr1)) {
                        LocalAttrHelper.hiddenOrDisplayProdAttr(data.getSceneInstId(), inst, attr1, KeyConsts.PROD_ATTR_SHOW_TYPE_E, "");
                    }
                }
                break;
            default:
                break;
        }
    }
}
